package com.demo.quartz;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;

public class CronTriggerScheduler {
    public static void main(String[] args) throws SchedulerException, InterruptedException {
        // 创建一个JobDetail实例，将该实例与HelloJob Class绑定
        JobDetail jobDetail = JobBuilder.newJob(HelloJob2.class)
                .withIdentity("myJob", "group1")
                .build();
        // 每秒钟触发一次任务
        CronTrigger trigger = (CronTrigger) TriggerBuilder.newTrigger()
                .withIdentity("myTrigger", "group1")
                .withSchedule(
                        CronScheduleBuilder.cronSchedule("* * * ? * 2-6"))
                .build();
        /**
         * 1. 2017年内每天10点15分触发一次
         * 0 15 10 ? * * 2017
         * 2. 每天的14点整至14点59分55秒，以及18点整至18点59分55秒每5秒执行一次
         * 0/5 * 14,18 * * ?
         * 3. 每月周一至周五的10点15分触发一次
         * * 15 10 ? * 2-6
         */
        SchedulerFactory sfact = new StdSchedulerFactory();
        Scheduler scheduler = sfact.getScheduler();
        scheduler.start();
        scheduler.scheduleJob(jobDetail, trigger);
        Thread.sleep(2000);
        scheduler.standby();
        scheduler.start();
    }
}
